package Demo03;
/*
匿名内部类定义格式：
接口名称 对象名 = new 接口名称（）{
  覆盖重写所有抽象方法
};

注意；匿名内部类，在创建对象的时候，只能使用唯一一次
如果希望多次创建对象，而且内的类容一样的话，那么就必须使用单独定义的实现类了
如果希望同一个对象，调用多次方法，那么必须给对象起个名字
匿名内部类是省略了【实现类 / 子类名称】，但是匿名对象是省略了【对象名称】
 */
public class DemoMain {
    public static void main(String[] args) {
       MyInterFace objA = new MyInterFace() {
           @Override
           void method1() {
               System.out.println("匿名内部实现了方法,111-A");

           }
           @Override
           void method2() {
               System.out.println("匿名内部实现了方法,222-A");

           }
       };
       objA.method1();
       objA.method2();
        System.out.println("=================");

       new MyInterFace() {
            @Override
            void method1() {
                System.out.println("匿名内部实现了方法,111-B");

            }
            @Override
            void method2() {
                System.out.println("匿名内部实现了方法,222-B");

            }
        }.method1();
//因为匿名对象无法调用第二次方法，所以需要在创建一个匿名内部类的匿名对象
        new MyInterFace() {
            @Override
            void method1() {
                System.out.println("匿名内部实现了方法,111-B");

            }
            @Override
            void method2() {
                System.out.println("匿名内部实现了方法,222-B");

            }
        }.method2();

    }
}
